<?php
//所有权限验证的类都需要继承这个类
class BaseAction extends Action{
	
	function _initialize(){
    	
		$Special = D('Special')->order('displayorder desc')->findAll();
		$this->assign('specials',$Special);
		
//		dump($Special);
		
		//header发送头信息，页面编码为utf=8格式
		header("Content-Type:text/html; charset=utf-8");
		//判断是否开始了用户认证,C()是快速读取配置文件的方法，MODEL_NAME是当前模块的名称，
		//通过in_array函数检测当前调用的模块是否在不需要验证的验块中，如果是的话，取反，不进行验证。
		if(C('USER_AUTH_ON') && !in_array(MODULE_NAME,explode(',',C('NOT_AUTH_MODULE')))){
	        //调用thinkphp自带的RBAC类
			import('ORG.Util.RBAC');
			//通过RBAC类中的AccessDecision获取与权限相关的信息,如果没有获取到则执行以下部份
			if(!RBAC::AccessDecision()){
			//获取SESSION中的用户标识号，如果没有则用户没有登陆
				if(!$_SESSION[C('USER_AUTH_KEY')] && !C('GUEST_AUTH_ON')){
					$this->assign('jumpUrl', PHP_FILE.C('USER_AUTH_GATEWAY'));
					$this->error('对不起，你没有登录！请重新登录');
				}
				//检测是否开始了游客认证方式
				if(C('GUEST_AUTH_ON')){
					
					$_SESSION[C('USER_AUTH_KEY')] = 2;
//					$_SESSION['email'] = $authInfo['email'];
					$_SESSION['loginUserName'] = '访客';
					$_SESSION['login_account'] = '访客';
					RBAC::saveAccessList(C('GUEST_AUTH_ID'));
					
//					$this->assign ('jumpUrl', PHP_FILE.C('USER_AUTH_GATEWAY'));
				}else{
					 if(!isset($_SESSION['_ACCESS_LIST'])){
						RBAC::saveAccessList(C('GUEST_AUTH_ID'));
					 }
				}
				//通过$this->error方法弹出错误_VALID_ACCESS_为THINKPHP已设定好的与访问//控制有关的错误提示.采用L()方式来进行读取。
//				$this->error(L('_VALID_ACCESS_'));
			}
		}
	}
}
?>